using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GenericsExercise
{
    internal static class SwapValue
    {
        /// <summary>
        /// 用ref关键字交换两个值，是为了保证值的交换在调用者中生效。
        /// 因此值类型参数不用ref关键字，传递的是值的副本，交换后不会影响原始变量。那么，即使做了交换，在调用者处也是不生效的。
        /// </summary>
        /// <typeparam name="T">进行数值转换数据的类型</typeparam>
        /// <param name="value1">参数1</param>
        /// <param name="value2">参数2</param>
        public static void Swap<T>(ref T value1, ref T value2)
        {
            T temp = value1;
            value1 = value2;
            value2 = temp;
        }
    }
}
